#include <iostream>
using namespace std;

class calculator_t {
  public:
    int value;

  public:
    calculator_t();
    calculator_t &add(int num);
    calculator_t &multiply(int num);
};

calculator_t::calculator_t() : value(0)
{
}

// 返回一个指向当前对象的引用
calculator_t &calculator_t::add(int num)
{
    this->value += num; // 将传递的参数 num 与成员变量value相加
    return *this;       // 返回指向当前对象的引用
}

calculator_t &calculator_t::multiply(int num)
{
    this->value *= num; // 将传递的参数 num 与成员变量value相乘
    return *this;       // 返回指向当前对象的引用
}

int main()
{
    calculator_t calc;
    calc.add(5).multiply(2).add(10); // 链式调用

    cout << "Result: " << calc.value << endl; // 输出: 20 (5+5)*2+10
    return 0;
}
